import com.beans.UserBean;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.core.io.ClassPathResource;

import javax.jws.soap.SOAPBinding;
import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: H_tao_X
 * Date: 2022-11-15
 * Time: 15:43
 */

// 这是一个启动类
public class DoIt {
    public static void main(String[] args) {
        /**
         * 通过 ApplicationContext 来获取 Bean
         */
        // 1. 得到 spring 上下文对象
        ApplicationContext context =
                new ClassPathXmlApplicationContext("spring-config.xml");
        // 2. 根据 上下文 对象提供的方法 获取到 Bean 对象
        UserBean userBean = (UserBean) context.getBean("user");
        // 3. 使用 Bean 对象
        userBean.sayHi("草本年华");

        /**
         * 获取Bean的第二种方法,根据bean type 获取 bean
         */
        UserBean userBean2 = context.getBean(UserBean.class);
        userBean2.sayHi("第二种获取Bean的方法");

        /**
         * 获取Bean的第三种方法，根据bean type 和 bean 名字来获取 bean
         */
        UserBean userBean3 = context.getBean("user",UserBean.class);
        userBean3.sayHi("这是第三种获取bean的写法");

        /**
         * 通过 BeanFactory 来获取 Bean
         */
        BeanFactory beanFactory = new XmlBeanFactory
                (new ClassPathResource("spring-config.xml"));
        UserBean userBean1 = (UserBean) beanFactory.getBean("user");
        userBean1.sayHi("你好");
    }
}
